package Aula17;

import java.util.LinkedList;
import java.util.Random;

public class MaisUmaComparacaoImpl implements MaisUmaComparacao{
	private Random rd = new Random();
	
	private int[] vetor;
	private LinkedList<Integer> lista;
	private TabelaHash tabelaHash;
	
	public int inicializar(int tamanho) {
		if(tamanho <= 0)
			return 0;
		vetor = new int[tamanho];
		lista = new LinkedList<Integer>();
		tabelaHash = new TabelaHash(tamanho);
		
		int numero = 0;
		
		for (int i = 0; i < tamanho ; i++){
			numero = rd.nextInt();
			vetor[i] = numero;
			lista.add(numero);
			tabelaHash.add(numero);
		}
		return 1;
	}

	public long tempoHash(int valorProcurado) {
		long inicio = System.nanoTime();
		tabelaHash.contains(valorProcurado);
		long fim = System.nanoTime();
		return (fim - inicio);
	}

	public long tempoLista(int valorProcurado) {
		long inicio = System.nanoTime();
		lista.contains(valorProcurado);
		long fim = System.nanoTime();
		return (fim - inicio);
	}

	public long tempoVetor(int valorProcurado) {
		long inicio = System.nanoTime();
		for(int i = 0; i < vetor.length; i ++){
			if (vetor[i] == valorProcurado);
				break;
		}
		long fim = System.nanoTime();
		return (fim - inicio);
	}
	
	public static void main(String[] args) {
        
        MaisUmaComparacao comp = new MaisUmaComparacaoImpl();
        
        if (comp.inicializar(1000) == 1){
            System.out.println(comp.tempoHash(45));
            System.out.println(comp.tempoLista(45));
            System.out.println(comp.tempoVetor(45));
        }
        

    }
}
